#ifndef _INSERT_TO_TABLE
#define _INSERT_TO_TABLE_H

#include "tree_structs.h"
#include <string>
#include <hash_map>


typedef std::pair<std::string, struct ClassInfo_Element> ClassPair;
typedef stdext::hash_map<std::string, struct ClassInfo_Element> ClassTable;
int insertToTable(ClassTable *Table, std::string Str, struct ClassDefInfo* pClassDef);

typedef std::pair<int, struct ConstInfo_Element> ConstPair;
typedef stdext::hash_map<int, struct ConstInfo_Element> ConstTable;
int insertToTable(ConstTable* Table, int Number,  struct ConstInfo_Element Const);

typedef std::pair<std::string, struct FieldInfo_Element> FieldsPair;
typedef stdext::hash_map<std::string, struct FieldInfo_Element> FieldTable;
int insertToTable(FieldTable* Table, std::string Str, struct FieldInfo_Element Field);


typedef std::pair<std::string, struct MethodInfo_Element> MethodPair;
typedef stdext::hash_map<std::string, struct MethodInfo_Element> MethodsTable;
int insertToTable(MethodsTable* Table,std::string Str, struct MethodInfo_Element Method);

typedef std::pair<std::string, int> LocVarPair;
typedef stdext::hash_map<std::string, int> LocVarTable;
int insertToTable(LocVarTable* Table, std::string Str, int Number);

#endif